package net.form.processing;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;

import net.form.processing.classification.EvaluadorClase;
import net.form.processing.classification.EvaluadorClaseComparator;

public class ClassifiedContainer {

	private Clasificador clasificador;

	private ClassifiedResult classifiedResult = null;

	private List<ClassifiedClass> containers = new ArrayList<ClassifiedClass>();
	

	public void setResultados(double humedad, double pesoHectolitrico) {
		Set<EvaluadorClase> clases = getClasificador().getClasificacion()
				.keySet();
		List<EvaluadorClase> lClases = new ArrayList<EvaluadorClase>(clases);
		Collections.sort(lClases, new EvaluadorClaseComparator());

		ClassifiedResult classifiedResult = new ClassifiedResult(getClasificador());
		setClassifiedResult(classifiedResult);
		classifiedResult.setClassifiedContainer(this);

		for (EvaluadorClase c : lClases) {
			ClassifiedClass container = new ClassifiedClass(c.getClase(), this,
					getClasificador());
			containers.add(container);
		}
		try {
			classifiedResult.setHumedad(new Double(humedad));
			classifiedResult.setPesoHectolitrico(new Double(pesoHectolitrico) * -1);
		} catch (Exception e) {
			classifiedResult.setHumedad(0.0);
			classifiedResult.setPesoHectolitrico(0.0);
		}
		classifiedResult.execute();
//		classifiedResult.actualizarDataSetPixel();
	}

	public void setClassifiedResult(ClassifiedResult classifiedResult) {
		this.classifiedResult = classifiedResult;
	}

	public ClassifiedResult getClassifiedResult() {
		return classifiedResult;
	}

	public Clasificador getClasificador() {
		return clasificador;
	}

	public void setClasificador(Clasificador clasificador) {
		this.clasificador = clasificador;
	}

	public List<Object[]> getObjectsClassified() {
		return getClassifiedResult().getObjectsClassified();
	}

	public Norma getNorma() {
		return getClassifiedResult().getNorma();
	}
	
	public Rebaja getRebaja() {
		return getClassifiedResult().getRebaja();
	}

}
